home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / misc / emu / ATUtilities.lha / ATUtilities / M2 / GEM.DEF < prev    next >
Text File  |  2000-09-26  |  3KB  |  123 lines

  1. (*$S- *)
  2. DEFINITION MODULE GEM;
  3.  
  4. FROM SYSTEM IMPORT BYTE,WORD,ADDRESS;
  5. FROM DOS    IMPORT FileHandlePtr;
  6.  
  7. CONST
  8.  
  9.  version  = 0;
  10.  revision = 1;
  11.  
  12. TYPE
  13.  STRING = POINTER TO ARRAY [0..79] OF CHAR;
  14.  
  15.  WindowFlags   = (windowClose,windowDepth,borderless,memSwap);
  16.  WindowFlagSet = SET OF WindowFlags;
  17.  
  18.  GadgetTypes   = (boolean,string,integer,gadBorderless,systemClose,systemDepth);
  19.  GadgetTypeSet = SET OF GadgetTypes;
  20.  
  21.  MessageClasses  = (keyHit,gadgetUp,menuPick,closeWindow,activateWindow,noWindow);
  22.  MessageClassSet = SET OF MessageClasses;
  23.  
  24.  MouseButtons   = (left,right,middle,mb4,mb5,mb6,mb7,
  25.                    mb8,mb9,mb10,mb11,mb12,mb13,mb14,mb15);
  26.  
  27.  MouseButtonSet = SET OF MouseButtons;
  28.  
  29.  WindowPtr        = POINTER TO Window;
  30.  GadgetPtr        = POINTER TO Gadget;
  31.  MenuPtr          = POINTER TO Menu;
  32.  MenuItemPtr      = POINTER TO MenuItem;
  33.  SystemMessagePtr = POINTER TO SystemMessage;
  34.  GDOSPtr          = POINTER TO GDOS;
  35.  
  36.  MenuItem = RECORD
  37.   text       : STRING;
  38.   checkit    : BOOLEAN;
  39.   checked    : BOOLEAN;
  40.   enabled    : BOOLEAN;
  41.  END (* RECORD *);
  42.  
  43.  Menu = RECORD
  44.   nextMenu       : MenuPtr;
  45.   leftEdge,width : CARDINAL;
  46.   mx1,mx2        : CARDINAL;
  47.   x1,x2          : CARDINAL;
  48.   text           : ADDRESS;
  49.   enabled        : BOOLEAN;
  50.   itemCount      : CARDINAL;
  51.   items          : ARRAY [0..24] OF MenuItem;
  52.  END (* RECORD *);
  53.  
  54.  Gadget = RECORD
  55.   nextGadget         : GadgetPtr;
  56.   leftEdge,topEdge,
  57.   width,height       : CARDINAL;
  58.   x1,y1,
  59.   x2,y2,
  60.   w,h                : CARDINAL;
  61.   type               : GadgetTypeSet;
  62.   text               : STRING;
  63.   id                 : CARDINAL;
  64.  
  65.   undo               : ADDRESS;
  66.  END (* RECORD *);
  67.  
  68.  Window = RECORD
  69.   nextWindow         : WindowPtr;
  70.   leftEdge,topEdge,
  71.   width,height       : CARDINAL;
  72.   x1,y1,
  73.   x2,y2,
  74.   w,h                : CARDINAL;
  75.   flags              : WindowFlagSet;
  76.   title              : STRING;
  77.   firstMenu          : MenuPtr;
  78.   firstGadget         : GadgetPtr;
  79.  
  80.   lock               : BOOLEAN;
  81.   swapFile           : FileHandlePtr;
  82.   swapMem            : ADDRESS;
  83.   swapSize           : CARDINAL;
  84.  END (* RECORD *);
  85.  
  86.  SystemMessage = RECORD
  87.   class        : MessageClassSet;
  88.   mouseX       : CARDINAL;
  89.   mouseY       : CARDINAL;
  90.   mouseButtons : MouseButtonSet;
  91.   menuNum      : CARDINAL;
  92.   itemNum      : CARDINAL;
  93.   gadget       : GadgetPtr;
  94.   window       : WindowPtr;
  95.  END (* RECORD *);
  96.  
  97.  GDOS = RECORD
  98.   (* ----- Nur fr internen Gebrauch --------- *)
  99.   gdosID        : ARRAY [0..3] OF CHAR;
  100.  
  101.   (* ----- ”ffentliche Variablen ------------- *)
  102.   gdosVersion   : CARDINAL;
  103.   gdosRevision  : CARDINAL;
  104.   graphics64    : ADDRESS;
  105.   firstWindow   : WindowPtr;
  106.  
  107.   (* ----- Nur fr internen Gebrauch --------- *)
  108.   mouseLock     : CARDINAL;
  109.   message       : SystemMessage;
  110.   systemMessage : SystemMessagePtr;
  111.   oldColors     : ARRAY [0..(16*3)] OF BYTE;
  112.   tempFile      : ARRAY [0..99] OF FileHandlePtr;
  113.  END (* RECORD *);
  114.  
  115. VAR gdos : GDOSPtr;
  116.  
  117. PROCEDURE InstallGDOSVector() : BOOLEAN;
  118. PROCEDURE RemoveGDOSVector();
  119.  
  120. PROCEDURE GetGDOSVector() : GDOSPtr;
  121.  
  122. END GEM.
  123.